#ifndef EXPPARSER_H
#define EXPPARSER_H

/**
 * @copyright Copyright (c) 2025 
 * CSG Digital Grid Technology (Guangdong) Co., Ltd.
 * @author zhouyan
 * @brief 表达式计算
*/

#include <string>
/*
 *  ExpParser
 *  @desc: 用于求解表达式的值，支持的运算符有：
 *         基本运算符: + - * /
 *         逻辑运算符: > >= < <= == || && !
 *         位运算符:  | & ^ ~ << >>
 *         括号: ()
 *         三目运算: ? :
 *  @Note:
 *      求解表达式时优先计算括号内的，再按照从左往右的顺序计算，
 *      不支持运算符的优先级计算，可以使用小括号来选择计算优先级。
 *      如： 7-3*4   先计算7-3=4  再计算4*4=16
 *          7-(3*4) 先计算3*4=12 再计算7-12=-5
 */
class ExpParser
{
public:
    static std::string calcExp(const std::string &result);
};

#endif // EXPPARSER_H
